指针&指针的指针,地址&地址的地址

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 int main(int argc, char* argv[])
 5 {
 6     char *s[]={"man","woman","girl","boy","sister"};
 7     char* *q=NULL;                    //指针的指针
 8     int k;
 9     for(k=0;k<5;k++)
10     {
11         q=&s[k];                    //p放入一维数组地址的地址(s[k]已经是一位数组地址了)
12         printf("%s\n",*q);
13     }
14     system("pause");
15     return 0;
16 }
 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 int main(int argc, char* argv[])
 5 {
 6     char *s[]={"man","woman","girl","boy","sister"};
 7     char *q=NULL;                    //普通指针
 8     int k;
 9     for(k=0;k<5;k++)
10     {
11         q=s[k];                        //p放入一维数组地址
12         printf("%s\n",*q);
13     }
14     system("pause");
15     return 0;
16 }
时间: 2024-10-09 03:45:32

指针&指针的指针,地址&地址的地址的相关文章

终于懂了:Delphi的函数名不是地址,取地址必须遵守Object Pascal的语法(Delphi和C的类比:指针、字符串、函数指针、内存分配等)good

这点是与C语言不一样的地方,以前我一直都没有明白这一点,所以总是不明白:函数地址再取地址算怎么回事? ---------------------------------------------------------------------------------------------------------------- 在学习Delphi的时候,一个很好的建议是和C/C++去类比着学习,从指针,到内存管理,到数组,到面向对象……各个方面,都是有很多可以相似和或者也有不同的方,类比着学习,一

C语言中,为什么指针表达式的值+1.对应的地址值却+4?/为什么两个数组元素的地址相减之差不为地址之差?

在C语言中,我们常常用到的一个运算是让某个变量的值+1. 例如 M = M + 1. 而在实际运用中,我们发现 对于指针进行+1运算,算出来的结果是+4. 如下图 图中我们定义的 变量M 和指针Matrix如下: int M = 3; int* Matrix = {1,2,3}; 可以看到,对于M和 Matrix ,+1运算的效果是不同的. 这个差异是因为C语言的标准中规定了 加法与减法运算对于地址的操作和对于值的操作是不同的,如下文中粗体所示: C89 3.3.6 Additive opera

指针的内容 &nbsp; 指针的地址 指针所指向的内容 指针的类型 指针所指向的类型

这几个个东东很具有迷惑性. int a=10;      //假设a的地址是 0x0000004C int *p;           //假设p的地址是 0x0035FA94 p=&a; 指针的内容:指针里面存放的是地址. 指针p里面存放的是a的地址(&a).即指针p里面存放的内容是0x0000004C. 指针的地址:指针本身的地址. 指针p的地址就是&p.指针p的地址是0x0035FA94 指针所指向的内容:也就是指针里面存放的地址,那块地址里面存放的内容,通过对指针进行*引用

(0)c++入门——认识指针与数组——指针即是内存中地址。

初识指针 首先需要了解一个概念,计算机的内存(或者说是寄存器)都是有地址的. <c++ primer plus>一书P37中提到这样一个概念:为把信息存储在计算机中,程序必须记录3个基本属性: 1.信息将要存储在哪里 2.要存储什么值 3.存储何种类型的信息 而正是为了满足第一个属性,开发语言的设计者设计或者说定义了指针:用于描述信息(各种类型的数据如int.float.double等)在内存中的地址(位置).就好比酒店在设计之初也需要制定各个房间的编号是什么,这样更方便安排客户入住.如下图:

c语言中通过指针将数值赋值到制定内存地址

1.一种直观的方法 假设现在需要往内存0x12ff7c地址上存入一个整型数0x100.我们怎么才能做到呢? 我们知道可以通过一个指针向其指向的内存地址写入数据,那么这里的内存地址0x12ff7c其本质不就是一个指针嘛.所以我们可以用下面的方法: int *p = (int *)0x12ff7c; *p = 0x100; 需要注意的是将地址0x12ff7c赋值给指针变量p的时候必须强制转换. 1.1 为什么在此处,我们敢往0x12ff7c这个地址赋值呢? 至于这里为什么选择内存地址0x12ff7c

C++虚函数:虚指针、虚表、虚函数入口地址

测试程序: //test.c #include"stdio.h" #include"string.h" class GSVirtual { public: void gsv(char *src) { char buf[200]; strcpy(buf,src); vir2(); } virtual void vir1() { printf("vir1"); } virtual void vir2() { printf("vir2&quo

深入研究:对变量以及指针重新赋值过程中原本的地址是否会改变。(按值传递机制的深入)

在研究按值传递机制时,发现一些模糊的概念.就是在对一个原本的(指针)变量重新给定另外一个值时,会不会改变这个变量原本所在的内存位置(即地址).因此,决定深入研究一下.而且这也是必要的. 给一个变量重新赋值时,地址的变化 1 //验证变量在被赋值(以及被重赋值)时原本分配的内存地址是否会改变. 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 int a;//声明a,即已经给a分配一个内存地址 8 printf("声明a时的地址:%p\n&

常量指针(指针指向的数值是常量)指针常量(指针指向的地址是无法改变的)

常量与常量指针 #include <iostream> using namespace std; int main() { int a = 3; const int *p = &a; cout << *p << endl; // *p = 20; // cout << *p << endl;//变量的值是常量,不能通过修改指向的变量的值,都是可以将指针进行指向别的地址. a = 20; cout << *p <<

网易云课堂_C语言程序设计进阶_第二周:指针:取地址运算和指针、使用指针、指针与数组、指针与函数、指针与const、指针运算、动态内存分配_2信号报告

2 信号报告(5分) 题目内容: 无线电台的RS制信号报告是由三两个部分组成的: R(Readability) 信号可辨度即清晰度. S(Strength)    信号强度即大小. 其中R位于报告第一位,共分5级,用1—5数字表示. 1---Unreadable 2---Barely readable, occasional words distinguishable 3---Readable with considerable difficulty 4---Readable with prac

黑马程序员---C基础9【字符串的输入输出】【字符串相关函数】【指针】【指针变量初始】【二级指针】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- [字符串的输入输出] 1.字符串输出: %s-------从给定的地址开始输出字符直到遇到\0停止: printf("%s\n",&a[3]);  printf("%s\n",a); char a[]="hellowo\0rd!"; 2.字符串输入: 从键盘上接收一个字符串,保存在以a为首地址的字符数组中 scanf("%s&