日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言通讯录程序设计个人感言,C语言学习感悟(1)

發布時間:2023/12/31 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言通讯录程序设计个人感言,C语言学习感悟(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天學習下,為什么指針變量也可以存儲字符串,難道不是只存儲指針么?

#include

#include

/* 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语言通讯录程序设计个人感言,C语言学习感悟(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。