C ~ 指针的运算】的更多相关文章

一 :取地址运算“&”与取内容运算“*”: 单目运算“&”是取操作对象的地址 , “*”是取指针指向的对象的内容 , 两者互为逆运算 int x , *p ; p = &x ; &(*p) = p 表示指针  : *(&x)= x 表示变量x 二 :指针的算术运算 : 指针的运算与其基类型有关 , 一般的,如果p是一个指针 ,n是一个正整数 ,则对指针 p 进行 +(-)操作后的实际地址是 : p +(-)n*sizeof(基类型) char *p ; int *q…
指针的运算在数组中才有意义 int *p; p++,一定是在一片连续的区域才有意义,当然越界也会带来诸多问题. void main() { ; int *p = &num;//这根本无界可言 p++; printf("%d\n",*p); getchar(); } 输出结果: #include<stdio.h> #include<stdlib.h> #include<Windows.h> void main() { ] = {,,,,,,,,…
4.4.2 值类型和引用类型 所有像 int.float.bool 和 string 这些基本类型都属于值类型,使用这些类型的变量直接指向存在内存中的值. Go 语言的取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址. 示例 4.22 string_pointer.go package main import "fmt" func main() { s := "good bye" var p *string = &s *p = "…
指针值加1就是将指针值加上sizeof(指针所指变量的类型) 1+1=2,那么指针加1是加上了1这个数字吗?试一下,在代码中定义了char数组,char也是整数,数组名是ac,ac中有10个元素,0-9,然后做了一个char *p=ac,定义了*p的一个指针,p指向了ac数组的第一个单元.然后分别输出p和p+1的值,结果是差了1: #include <stdio.h> int main(void){ ,,,,,,,,,}; char *p = ac; printf("p =%p\n&…
#运算符:用于在预编译期将宏参数转换为字符串 #define CONVERS(x)  #x   //注:没用双引号包括. 不同类型的指针占用的内存空间大小相同. 局部变量 定义: a[5]; 打印a[i]时,a[i]为随机数. 若定义a[5]={1,2}; 打印时,a[0]=1;a[1]=2;a[2]=a[3]=a[4]=0; 数组地址与数组名: 1.数组名代表数组首元素的地址.  a=&a[0]; 2.数组的地址需要用取地址符号&才能得到 (&a) 3.数组首元素的地址值与数组的…
下面随笔是关于指针的算术运算 .关系运算. 指针类型的算术运算 指针与整数的加减运算 指针++,--运算 指针类型的算术运算 指针p加上或减去n 其意义是指针当前指向位置的前方或后方第n个数据的起始位置. 指针的++.--运算 意义是指向下一个或前一个完整数据的起始. 运算的结果值取决于指针指向的数据类型,总是指向一个完整数据的起始位置. 当指针指向连续存储的同类型数据时,指针与整数的加减运和自增自减算才有意义. 指针与整数相加的意义…
指针 -->指针变量 类型名 *变量名 int *point1; char *point2; 注意:*p可以直接使用,它代表指针p指向的变量,*p可以当做被指向的变量使用!~~~~ 一个变量的地址 成为这个变量的指针. -->数组元素的指针 定义:数组元素的地址 定义数组 一维数组 ] = {,,,}; 二维数组 ] = { {'a','b','c'}, {'k','c','s''}, {'j','w','z'} }; 数组元素的指针 ];//指针变量s,指向数组p的0号元素,作用将p数组的首…
C指针基础知识 C语言中,指针无疑是最令人头疼的.今天无事就来学学C语言的指针,在此留下点笔记,仅供个人参考. 首先要搞懂的是,指针是什么? 指针:是用来存放内存地址的变量. 不管是什么类型的指针,存放的都是内存地址,所有类型的指针变量的大小都是一致的. 和指针相关的两个符号: & 取址符.取一个变量的地址. * 表示一个指针,同时也可以取指针对应的变量的值. 下面来看一下指针最简单的使用. 代码上解释的比较清楚了,来看看打印的结果,前两行打印的结果是一样的,所以可以看出,指针里面存放的就是变量…
注:初稿...有点乱,可能增删改... 因为指针应用,感觉不好写,请大家指出错误,谢谢. 注意: 本文着重点讲的是指针的各类型的应用或使用,而不是说这种方法不应该+不安全+危险+不提倡使用. 其它:本文说的是x86环境,x64会有变化,且,只是讲述一些方法,细节部分,如果涉及到不同平台问题,勿太深究.:) 指针:按正规解释是:“指向另一内存块地址的变量”,它是一个变量值,只有4字节(x86=>sizeof(Pointer)=4, x64=8,以下都以x86为准). 所以,它与内存其实息息相关,所…
5,数组指针的不同含义 int a[5][10]; printf(%d, %d, %d\n", a, a+1, &a+1);  //1310392,1310432,1310592 a和&a都是数组a[5][10]的首地址. a 是 int a[10]的类型,而 &a 则是 a[5][10]的类型.指针运算中的"1"代表的是指针类型的长度.所以 a + 1 和 &a + 1 中的1代表的长度分别为 a 的类型 a[10]即 sizeof(int)…