行优先和列优先
有三种循环方式:for循环,do-while循环
、while循环,
字符串之间的比较,它有专门的字符串比较函数:strcmp函数.
指针解遍历数组例题:
#include stdio.h
int main(){
int i, *p = arr, len = sizeof(arr) / sizeof(int);
for(i=0; ilen; i++){
printf("%d ", *(p+i) );}
printf("\n");
return 0;
}
数组在内存中只是数组元素的简单排列,没有开始和结束标志,在求数组的长度时不能使用sizeof(p) / sizeof(int),因为 p 只是一个指向 int 类型的指针,编译器并不知道它指向的到底是一个整数还是一系列整数(数组).
所以 sizeof(p) 求得的是 p 这个指针变量本身所占用的字节数,而不是整个数组占用的字节数.也就是说,根据数组指针不能逆推出整个数组元素的个数,以及数组从哪里开始、到哪里结束等信息.
因为数组是从0开始算起的
第0行和第1行
同理
可解释j
//
#include?"stdafx.h"
#define?MAX_LOADSTRING?100
//?全局变量:?
HINSTANCE?hInst;//?当前实例
TCHAR?szTitle[MAX_LOADSTRING];//?标题栏文本
TCHAR?szWindowClass[MAX_LOADSTRING];//?主窗口类名
//?此代码模块中包含的函数的前向声明:?
ATOMMyRegisterClass(HINSTANCE?hInstance);
BOOLInitInstance(HINSTANCE,?int);
LRESULT?CALLBACKWndProc(HWND,?UINT,?WPARAM,?LPARAM);
INT_PTR?CALLBACKAbout(HWND,?UINT,?WPARAM,?LPARAM);
int?APIENTRY?_tWinMain(_In_?HINSTANCE?hInstance,
_In_opt_?HINSTANCE?hPrevInstance,
_In_?LPTSTR?lpCmdLine,
_In_?int??nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
//?TODO:?在此放置代码.
MSG?msg;
HACCEL?hAccelTable;
//?初始化全局字符串
LoadString(hInstance,?IDS_APP_TITLE,?szTitle,?MAX_LOADSTRING);
MyRegisterClass(hInstance);
//?执行应用程序初始化:?
if?(!InitInstance?(hInstance,?nCmdShow))
return?FALSE;
//?主消息循环:?
while?(GetMessage(msg,?NULL,?0,?0))
if?(!TranslateAccelerator(msg.hwnd,?hAccelTable,?msg))
TranslateMessage(msg);
DispatchMessage(msg);
return?(int)?msg.wParam;
//?函数:?MyRegisterClass()
//?目的:?注册窗口类.
ATOM?MyRegisterClass(HINSTANCE?hInstance)
WNDCLASSEX?wcex;
wcex.cbSize?=?sizeof(WNDCLASSEX);
wcex.style=?CS_HREDRAW?|?CS_VREDRAW;
wcex.lpfnWndProc=?WndProc;
wcex.cbClsExtra=?0;
wcex.cbWndExtra=?0;
wcex.hInstance=?hInstance;
wcex.hCursor=?LoadCursor(NULL,?IDC_ARROW);
wcex.hbrBackground=?(HBRUSH)(COLOR_WINDOW+1);
wcex.lpszClassName=?szWindowClass;
wcex.hIconSm=?LoadIcon(wcex.hInstance,?MAKEINTRESOURCE(IDI_SMALL));
return?RegisterClassEx(wcex);
//?函数:?InitInstance(HINSTANCE,?int)
//?目的:?保存实例句柄并创建主窗口
//?注释:?
//??在此函数中,我们在全局变量中保存实例句柄并
//??创建和显示主程序窗口.
BOOL?InitInstance(HINSTANCE?hInstance,?int?nCmdShow)
HWND?hWnd;
hInst?=?hInstance;?//?将实例句柄存储在全局变量中
hWnd?=?CreateWindow(szWindowClass,?szTitle,?WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,?0,?CW_USEDEFAULT,?0,?NULL,?NULL,?hInstance,?NULL);
if?(!hWnd)
ShowWindow(hWnd,?nCmdShow);
UpdateWindow(hWnd);
return?TRUE;
//?函数:?WndProc(HWND,?UINT,?WPARAM,?LPARAM)
//?目的:?处理主窗口的消息.
//?WM_COMMAND-?处理应用程序菜单
//?WM_PAINT-?绘制主窗口
//?WM_DESTROY-?发送退出消息并返回
LRESULT?CALLBACK?WndProc(HWND?hWnd,?UINT?message,?WPARAM?wParam,?LPARAM?lParam)
int?wmId,?wmEvent;
PAINTSTRUCT?ps;
HDC?hdc;
switch?(message)
case?WM_COMMAND:
wmId?=?LOWORD(wParam);
wmEvent?=?HIWORD(wParam);
//?分析菜单选择:?
switch?(wmId)
case?IDM_ABOUT:
DialogBox(hInst,?MAKEINTRESOURCE(IDD_ABOUTBOX),?hWnd,?About);
break;
case?IDM_EXIT:
DestroyWindow(hWnd);
default:
return?DefWindowProc(hWnd,?message,?wParam,?lParam);
case?WM_PAINT:
hdc?=?BeginPaint(hWnd,?ps);
//?TODO:?在此添加任意绘图代码...
EndPaint(hWnd,?ps);
case?WM_DESTROY:
PostQuitMessage(0);
return?0;
//?"关于"框的消息处理程序.
INT_PTR?CALLBACK?About(HWND?hDlg,?UINT?message,?WPARAM?wParam,?LPARAM?lParam)
UNREFERENCED_PARAMETER(lParam);
case?WM_INITDIALOG:
return?(INT_PTR)TRUE;
if?(LOWORD(wParam)?==?IDOK?||?LOWORD(wParam)?==?IDCANCEL)
EndDialog(hDlg,?LOWORD(wParam));
return?(INT_PTR)FALSE;
以上就是土嘎嘎小编为大家整理的c语言遍历数组元素的函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!