GTK+2.0学习——C指针回顾

工作需要,开始做GTK,但是很久没碰C了,来捡一下C的精华。

一、*和&的意义

*:指针运算符

&:取地址运算符

两者优先级一样,从右向左方向结合

二、指针和指针变量

指针:一个变量的地址称为指针

指针变量:专门用来存放指针的变量。

#include <stdio.h>

void main(){

int a = 3;//定义一个值为3的变量,假设在内存中的地址为2000

int *pointer;//定义一个指向存放着int型数据的内存的指针变量

pointer = &a;//将a的地址赋给pointer,即pointer中存放的值为2000

printf("%d",a);//输出3

printf("%d",*pointer);//输出3

}

int *pointer;//*的含义是,定义的这个变量是指针变量,只能存放指针;

printf("%d",*pointer);//*的含义是,访问pointer中存放的地址中存放的值。

&*pointer:取*pointer的地址,*pointer=3=a,即&a=2000;

*&a:&a=2000,则*&a的意思为访问地址为2000的内存中的值,即3=*pointer;

(*pointer)++和*pointer++:同优先级,自右向左结合,所以(*pointer)++=a++;而*pointer++=a,然后pointer会指向2002(int型占两字节,所以int型指针+1的话就是+2个字节。所以指针变量定义时需要指定基类型,不然运算时不知道移动几位,会读到错误的数据)

三、指针与数组

如果数组是float型的,则p+1实际的含义是指向四个字节之后的地址

用数组名作为函数参数

#include <stdio.h>

void mian(){

void f(int arr[],int n);

Int array[10];

……

f(array,10);

}

void f(int arr[],int n){

……

}

把一个数组作为形参传值传的是地址,所以改变地址里面的值时,实参的值会变化。如果传变量的话传的是值,实参不会发生变化。

时间: 2024-10-16 19:19:42

GTK+2.0学习——C指针回顾的相关文章

GTK+2.0学习——C数据类型

一.C语言中的数据类型 1.基本类型: 说 明 字符型 短整型 整型 长整型 单精度浮点型 双精度浮点型 无类型 数据类型 char short int long float double void 以上除外,还有枚举类型. 各种数据类型的长度一般如下: 说 明 字符型 短整型 整型 长整型 单精度浮点型 双精度浮点型 数据类型 char short int long float double 长 度 1 2 4 4 4 8 2.构造类型 数组.结构体.共用体 3.指针类型 4.NULL(空类型

linux下c图形化编程之gtk+2.0简单学习

在linux下想做一个图形化的界面,然后自己选择使用gtk+2.0来进行编辑,我的电脑已经安装过gtk+2.0了,所以就在网上找了一个安装方法,结果未测试,大家有安装问题可以说下,一起探讨下. 1.安装gcc/g++/gdb/make 等基本编程工具 sudo apt-get install build-essential 2.安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件 sudo apt-get install gnome-core-devel 3.用于在

在 Linux 系统上源码安装 GTK+ 2.0

在 Linux 系统上源码安装 GTK+ 2.0==================================================Keywords: GTK+, Install, Linux, SourceAuthor:       whyglinux (whyglinux AT hotmail DOT com)Date:          2007-01-07==================================================目录0. 前言1.

黑马程序员——c语言学习心得—— 指针

黑马程序员——c语言学习心得—— 指针 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1,打开文件fopen(文件名,打开方式);例如:FILE *fp = fopen("a1","r");  返回的是文件的指针(文件在内存缓冲区的首地址)fopen函数反回值 是指向 a1文件的指针,通常赋值给一个指针变量关于文件名a1 也可以是一个“路径+文件名”   c:\abc.txt----------------

notepad++上搭建gtk+2.0/3.x开发环境

前言 老师布置了一道题需要用到图形界面,于是开始找图形库.最后选择了gtk+图形库,然后折腾了大概一天. 这里记录自己新学到的知识,同时也给后来者一些便利. 准备 下载以下内容 notepad++(由于官网访问较慢,建议使用其他渠道) mingw(包含msys和gcc工具链) gtk+bundle(2.x或3.x都可以,这里提供3.x.若连接失效,请自行搜索下载) 安装 notepad++的安装就是普通安装,这里不做介绍. 运行mingw-get-setup.exe,选择一个安装目录(这里以c:

【C语言学习】指针再学习(二)之数组的指针

★一维数组 一个整型数据为4个字节.4个字节就是32位,即可以表示2^32个数字 在程序中定义一个数组a[5] = {1,2,3,4,5}; 那么a[0]的地址就是0x00000000,数组名a是数组首元素的地址,a的地址也是0x00000000.a+1则表示的地址是0x00000004,而不是0x00000001.因为1这个值,根据前面的指针a所指向的类型的长度来调整自己的长度.也就是说如果a是指向整型的指针,那么后面加的1也表示4个字节,如果a是指向字符型的指针,那么后面加的1表示1个字节.

ubuntu下使用code::blocks编译运行一个简单的gtk+2.0项目

在具体的操作之前,首先需要安装一些必要的软件.ubuntu下默认安装了gcc,不过缺少必要的Header file,可以在命令行中输入下面的指令安装build-essential套件:sudo apt-get install build-essential使用GTK+2.0需要安装GTK开发套件,在命令行中输入下面的指令安装GTK开发套件libgtk2.0-dev:sudo apt-get install libgtk2.0-dev安装完成后,可以使用pkg-config查看一下GTK的相关编译

ubuntu下code::blocks编译运行一个简单的gtk+2.0项目

在具体的操作之前,首先需要安装一些必要的软件.ubuntu下默认安装了gcc,不过缺少必要的Header file,可以在命令行中输入下面的指令安装build-essential套件:sudo apt-get install build-essential使用GTK+2.0需要安装GTK开发套件,在命令行中输入下面的指令安装GTK开发套件libgtk2.0-dev:sudo apt-get install libgtk2.0-dev安装完成后,可以使用pkg-config查看一下GTK的相关编译

Spark1.0.0 学习路线

接触了Spark也快有半年了,版本从0.8.0到现在的1.0.0SNAPSHOT,从头到尾被spark这个优秀的框架深深吸引,也为scala的优雅所折服.4.19日"2014 中国Spark技术峰会"召开,可以看出随着Spark技术的完善,越来越多的企业已经开始使用或开始关注Spark的发展了.回顾学习过程,觉得很有必要整理一份学习路线,对所学的内容加以沉淀,同时也为同行作为参考. 因为Spark1.0.0即将发布,增加了很多特性,所以决定修改以前的博文,全都采用Spark1.0.0,