%p格式符(对应&a):输出地址值(十六进制的无符号整数表示(其字长一般与主机的字长相同))
定义指针变量时将其初始化为NULL(在stdio.h中定义为零值的宏)
间接寻址运算符or解引用运算符
pa = &a;
*pa = a;
修改*pa也是修改了a
eg.int main() { int arg = 1; Fun(&arg); //传递变量arg的地址 } void Fun(int *par) { printf("par = %d\n", arg); }
char *ptr = “Hello”;
将保存在常量存储区中的“Hello”的首地址赋值给ptr
等价于ptr= &str[0]
gets()将回车符作为字符串的终止符,同时将回车符从输入缓存区读走,但不作为字符串的一部分。而scanf()不读走回车符,回车符仍留在输入缓存区中
int main()
{
char name[N];
char *ptrName = name;
printf("Enter your name:");
gets(ptrName);
printf("Hello %s!\n", ptrName);
return 0;
fgets(name, sizeof(name), stdin); //限制输入字符串长度的函数
//从标准输入stdin中读取一行长度为sizeof(name)的字符串送到name为首地址的存储区中
“\”\右斜杠(反斜杠)
const int *p = &a; //p是一个指针变量,可指向一个整形常量,*p不可修改,但*p的指向可修改eg.p = &b为合法的