美文网首页
C语言学习感悟(1)

C语言学习感悟(1)

作者: 一个冬季 | 来源:发表于2018-05-22 22:50 被阅读9次

今天学习下,为什么指针变量也可以存储字符串,难道不是只存储指针么?

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

void main(int argc, char *argv[]) {
    int i=3,j=5;
    int *p,*q;
    p = &i,q=&j;
    
    float a=5.8,b=7.9;
    float *c,*d;
    c = &a,d = &b;
    
    char m='I',n='l';
    char *x,*y;
    x=&m,y=&n;
    printf("i=%d,j=%d\n",*p,*q);
    printf("a=%f,b=%f\n",*c,*d);
    printf("m=%c,n=%c\n",*x,*y);
}
感悟.png

代码里面int *p, *q表示的是指针变量,就类似java里面的int a一样。p,q里面保存的都是指针的地址形如0x1111这样的地址。如果我们需要打印数据如这样printf("i=%d,j=%d\n", *p, *q); *p, *q我们可以理解为取地址所指向的内容。
如果你的指针变量是这样的

    char buf[]="fadfdsew";
    char *p=buf;
    p="eqewq"; 
    printf("%d\n",p);
    printf("%s",p);
指针变量被赋值字符串.png

像上面这样我的指针变量改变了,变成eqewq。如何理解与我前面所写的 p=0x1111 这样的呢?

    int i=3
    int *p;
    p = &i

大家看到没,我是取i的地址放到p里面,如果我们printf("%d",p),会打印0x1111 ,下面这个我是把"eqewq"放到指针变量里面,它在这里面做了什么工作呢?一共有3件事:
1.申请了空间(在常量区),存放了字符串
2.在字符串尾加上了'/0'
3.返回地址
指针获取的是字符串首字母e的首地址,当用%s输出时,在输出前一个字符的同时指针会自动跳到下个字符的地址处,直到遇到'/0'停止,所以%s可以输出一个字符串.

    char buf[]="fadfdsew";
    char *p=buf;
    p="eqewq"; 

相关文章

  • C语言学习感悟(1)

    今天学习下,为什么指针变量也可以存储字符串,难道不是只存储指针么? 代码里面int *p, *q表示的是指针变量...

  • C语言与C++

    1、学习目的: 2、C语言和C++的区别变化: (1)C语言面向过程,C++面向对象 eg.上课: C:小王 走...

  • C语言第1节 概述

    C语言中文网 一、 为什么学习C语言? 1. C的起源和发展 1)第一代语言:机器语言(0101010101)2)...

  • C语言入门学习(1)——C语言学习简介

    接下来,这个博客会循序渐进的更新一些C语言入门学习的资料, 学习一门语言,主要是以实练为主,但是网上却缺少很多这种...

  • 一、本文集内容

    学啥 1.计算机基础知识(c语言相关的)2.C语言基础3.C语言进阶4.C语言小项目 学习教材-C语言编程: 一本...

  • 郝斌C语言笔记 -- 概述

    概述 1.为什么学习C语言? 1. C语言的起源和发展 1. 主流计算机语言(了解) Fortran语言主要用于科...

  • c语言基础学习

    #C语言的基础学习 标签: c语言 数据类型 基本程序 第一章:C程序初步学习 1.怎么去编译C程序 gcc xx...

  • C语言学习感悟(3)

    此次本章是掌握 ++( *p)和( *p)++的区别 我代码里面已经包含了注释,你们一定不要看错了,我的那些分解步...

  • C语言学习感悟(2)

    今天学习数组加上{0}避免打印结果出现乱码 使用函数strlen:用来计算指定的字符串s 的长度,不包括结束字符"...

  • C语言的正确入门方法!

    1怎样学习C语言? 很多人对学习C语言感到无从下手,经常问我同一个问题:究竟怎样学习C语言?我是一个高级编程师,已...

网友评论

      本文标题:C语言学习感悟(1)

      本文链接:https://www.haomeiwen.com/subject/cnfljftx.html