本节内容需要掌握内存分区的概念,可以参见:C程序的内存分区(节选自黑马训练营day1)
下面来看例程:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define sTring "I like C!" //定义一个宏字符串
1 void locationOfString() //不同声明形式下,字符串的地址
2 {
3
char arrString[]="I am a freshman!"; //数组形式声明字符串
4
char *p=arrString; //声明指针指向上面字符串
5
char*q="I am a freshman!";
6
printf("字符串本身的地址是:
%p 字符串的内容是:
%s","I am a freshman!","I am a freshman!\n");
7
printf("字符串数组的地址是:
%p 字符串数组的内容是:
%s\n",arrString,arrString);
8
printf("指向字符串数组的指针的地址是:%p 指向字符串数组的指针的内容是:%s\n",p,p);
9
printf("指向字符串的指针的指向地址是:%p 指向字符串的指针的内容是: %s\n\n",q,q);
10 }